package com.cfz.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

import java.util.Date;
import java.util.List;
import java.util.Map;


/**
 * @ConfigurationProperties作用： 将配置文件中配置的每一个属性的值，映射到这个组件中；
 * 告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
 * 参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应
 */
@ConfigurationProperties(prefix = "person")
//@PropertySource(value = "classpath:huangjianmei.properties") // 加载配置文件
@Component // 标识为spring组件, 可以被spring管理, 自动注入
@AllArgsConstructor
@NoArgsConstructor
@Data
@Validated // 数据校验
public class Person {

    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String, Object> map;
    private List<Object> list;
    private Dog dog;

}